home *** CD-ROM | disk | FTP | other *** search
/ Computer Select (Limited Edition) / Computer Select.iso / dobbs / v17n03 / ucrasm.exe / STDLIB.A < prev    next >
Encoding:
Text File  |  1991-11-08  |  32.1 KB  |  2,020 lines

  1. StdGrp        group    stdlib, stddata
  2. ;
  3. stddata        segment    para public 'sldata'
  4. stddata        ends
  5. stdlib        segment    para public 'slcode'
  6. stdlib        ends
  7. ;
  8. ;
  9. ; Interface to standard library routines.
  10. ;
  11. ;
  12. ;
  13. slcall    macro    adrs
  14.     db    9ah            ;Far call opcode
  15.     dd    adrs
  16.     endm
  17. ;------------------------------------------------
  18. ;
  19. getc        macro
  20.         ifndef    sl_getc
  21. stdlib        segment    para public 'slcode'
  22.         extrn    sl_getc:far
  23. stdlib        ends
  24.         endif
  25.         slcall    sl_getc
  26.         endm
  27. ;
  28. ;
  29. ;
  30. GetcStdIn    macro
  31.         ifndef    sl_GetcStdIn
  32. stdlib        segment    para public 'slcode'
  33.         extrn    sl_GetcStdIn:far
  34. stdlib        ends                
  35.         endif
  36.         slcall    sl_GetcStdIn
  37.         endm
  38. ;
  39. ;
  40. ;
  41. ;
  42. GetcBIOS    macro
  43.         ifndef    sl_GetcBIOS
  44. stdlib        segment    para public 'slcode'
  45.         extrn    sl_GetcBIOS:far
  46. stdlib        ends
  47.         endif
  48.         slcall    sl_GetcBIOS
  49.         endm
  50. ;
  51. ;
  52. SetInBIOS    macro
  53.         ifndef    sl_SetInBIOS
  54. stdlib        segment    para public 'slcode'
  55.         extrn    sl_SetInBIOS:far
  56. stdlib        ends
  57.         endif
  58.         slcall    sl_SetInBIOS
  59.         endm
  60. ;
  61. SetInStd    macro
  62.         ifndef    sl_SetInStd
  63. stdlib        segment    para public 'slcode'
  64.         extrn    sl_SetInStd:far
  65. stdlib        ends
  66.         endif
  67.         slcall    sl_SetInStd
  68.         endm
  69. ;
  70. ;
  71. ;
  72. SetInAdrs    macro
  73.         ifndef    sl_SetInAdrs
  74. stdlib        segment    para public 'slcode'
  75.         extrn    sl_SetInAdrs:far
  76. stdlib        ends                
  77.         endif
  78.         slcall    sl_SetInAdrs
  79.         endm
  80. ;
  81. ;
  82. GetInAdrs    macro
  83.         ifndef    sl_GetInAdrs
  84. stdlib        segment    para public 'slcode'
  85.         extrn    sl_GetInAdrs:far
  86. stdlib        ends                
  87.         endif
  88.         slcall    sl_GetInAdrs
  89.         endm
  90. ;
  91. ;
  92. PushInAdrs    macro
  93.         ifndef    sl_PushInAdrs
  94. stdlib        segment    para public 'slcode'
  95.         extrn    sl_PushInAdrs:far
  96. stdlib        ends                
  97.         endif
  98.         slcall    sl_PushInAdrs
  99.         endm
  100. ;
  101. ;
  102. PopInAdrs    macro
  103.         ifndef    sl_PopInAdrs
  104. stdlib        segment    para public 'slcode'
  105.         extrn    sl_PopInAdrs:far
  106. stdlib        ends                
  107.         endif
  108.         slcall    sl_PopInAdrs
  109.         endm
  110. ;
  111. ;
  112. ;
  113. gets        macro
  114.         ifndef    sl_gets
  115. stdlib        segment    para public 'slcode'
  116.         extrn    sl_gets:far
  117. stdlib        ends
  118.         endif
  119.         slcall    sl_gets
  120.         endm
  121. ;
  122. getsm        macro
  123.         ifndef    sl_getsm
  124. stdlib        segment    para public 'slcode'
  125.         extrn    sl_getsm:far
  126. stdlib        ends
  127.         endif
  128.         slcall    sl_getsm
  129.         endm
  130. ;
  131. ;
  132. atol        macro
  133.         ifndef    sl_atol
  134. stdlib        segment    para public 'slcode'
  135.         extrn    sl_atol:far
  136. stdlib        ends                
  137.         endif
  138.         slcall    sl_atol
  139.         endm
  140. ;
  141. atoul        macro
  142.         ifndef    sl_atoul
  143. stdlib        segment    para public 'slcode'
  144.         extrn    sl_atoul:far
  145. stdlib        ends                
  146.         endif
  147.         slcall    sl_atoul
  148.         endm
  149. ;
  150. ;
  151. ;
  152. atol2        macro
  153.         ifndef    sl_atol2
  154. stdlib        segment    para public 'slcode'
  155.         extrn    sl_atol2:far
  156. stdlib        ends                
  157.         endif
  158.         slcall    sl_atol2
  159.         endm
  160. ;
  161. atoul2        macro
  162.         ifndef    sl_atoul2
  163. stdlib        segment    para public 'slcode'
  164.         extrn    sl_atoul2:far
  165. stdlib        ends                
  166.         endif
  167.         slcall    sl_atoul2
  168.         endm
  169. ;
  170. ;
  171. ; atoi and atou from atoi.asm
  172. ;
  173. atoi        macro
  174.         ifndef    sl_atoi
  175. stdlib        segment    para public 'slcode'
  176.         extrn    sl_atoi:far
  177. stdlib        ends                
  178.         endif
  179.         slcall    sl_atoi
  180.         endm
  181. ;
  182. atou        macro
  183.         ifndef    sl_atou
  184. stdlib        segment    para public 'slcode'
  185.         extrn    sl_atou:far
  186. stdlib        ends                
  187.         endif
  188.         slcall    sl_atou
  189.         endm
  190. ;
  191. ;
  192. atoi2        macro
  193.         ifndef    sl_atoi2
  194. stdlib        segment    para public 'slcode'
  195.         extrn    sl_atoi2:far
  196. stdlib        ends                
  197.         endif
  198.         slcall    sl_atoi2
  199.         endm
  200. ;
  201. atou2        macro
  202.         ifndef    sl_atou2
  203. stdlib        segment    para public 'slcode'
  204.         extrn    sl_atou2:far
  205. stdlib        ends                
  206.         endif
  207.         slcall    sl_atou2
  208.         endm
  209. ;
  210. ;
  211. ;
  212. atoh        macro
  213.         ifndef    sl_atoh
  214. stdlib        segment    para public 'slcode'
  215.         extrn    sl_atoh:far
  216. stdlib        ends                
  217.         endif
  218.         slcall    sl_atoh
  219.         endm
  220. ;
  221. ;
  222. atolh        macro
  223.         ifndef    sl_atolh
  224. stdlib        segment    para public 'slcode'
  225.         extrn    sl_atolh:far
  226. stdlib        ends                
  227.         endif
  228.         slcall    sl_atolh
  229.         endm
  230. ;
  231. ;
  232. atoh2        macro
  233.         ifndef    sl_atoh2
  234. stdlib        segment    para public 'slcode'
  235.         extrn    sl_atoh2:far
  236. stdlib        ends                
  237.         endif
  238.         slcall    sl_atoh2
  239.         endm
  240. ;
  241. ;
  242. atolh2        macro
  243.         ifndef    sl_atolh2
  244. stdlib        segment    para public 'slcode'
  245.         extrn    sl_atolh2:far
  246. stdlib        ends                
  247.         endif
  248.         slcall    sl_atolh2
  249.         endm
  250. ;
  251. ;
  252. ;------------------------------------------------
  253. ;
  254. ;
  255. ISize        macro
  256.         ifndef    sl_ISize
  257. stdlib        segment    para public 'slcode'
  258.         extrn    sl_ISize:far
  259. stdlib        ends                
  260.         endif
  261.         slcall    sl_Isize
  262.         endm
  263. ;
  264. USize        macro
  265.         ifndef    sl_USize
  266. stdlib        segment    para public 'slcode'
  267.         extrn    sl_USize:far
  268. stdlib        ends                
  269.         endif
  270.         slcall    sl_USize
  271.         endm
  272. ;
  273. ;
  274. ;
  275. LSize        macro
  276.         ifndef    sl_LSize
  277. stdlib        segment    para public 'slcode'
  278.         extrn    sl_LSize:far
  279. stdlib        ends                
  280.         endif
  281.         slcall    sl_Lsize
  282.         endm
  283. ;
  284. ULSize        macro
  285.         ifndef    sl_ULSize
  286. stdlib        segment    para public 'slcode'
  287.         extrn    sl_ULSize:far
  288. stdlib        ends                
  289.         endif
  290.         slcall    sl_ULSize
  291.         endm
  292. ;
  293. ;
  294. ;-----------------------------------------------------------------------
  295. ;
  296. ;
  297. Print        macro
  298.         ifndef    sl_print
  299. stdlib        segment    para public 'slcode'
  300.         extrn    sl_print:far
  301. stdlib        ends
  302.         endif
  303.         slcall    sl_print
  304.         endm
  305. ;
  306. ;---------------------------------------------------------------------------
  307. ;
  308. ;
  309. Printf        macro
  310.         ifdef    sl_printff
  311.         %out    Warning: You're using both PRINTFF and PRINTF, just use PRINTFF
  312.         endif
  313.         ifndef    sl_printf
  314. stdlib        segment    para public 'slcode'
  315.         extrn    sl_printf:far
  316. stdlib        ends                
  317.         endif
  318.         slcall    sl_printf
  319.         endm
  320. ;
  321. ;
  322. printff        macro
  323.         ifdef    sl_printf
  324.         %out    Warning: You're using both PRINTFF and PRINTF, just use PRINTFF
  325.         endif
  326.         ifndef    sl_Printff
  327. stdlib        segment    para public 'slcode'
  328.         extrn    sl_Printff:far
  329. stdlib        ends
  330.         endif
  331.         call    sl_Printff
  332.         endm
  333. ;
  334. ;
  335. SPrintf        macro
  336.         ifndef    sl_sprintf
  337. stdlib        segment    para public 'slcode'
  338.         extrn    sl_sprintf:far
  339.         ifndef    sp_BufSize
  340.         extrn    sp_BufSize:word
  341.         endif
  342. stdlib        ends                
  343.         endif
  344.         slcall    sl_sprintf
  345.         endm
  346. ;
  347. ;
  348. SPrintfm    macro
  349.         ifndef    sl_sprintfm
  350. stdlib        segment    para public 'slcode'
  351.         extrn    sl_sprintfm:far
  352. stdlib        ends                
  353.         endif
  354.         slcall    sl_sprintfm
  355.         endm
  356. ;
  357. ;
  358. ;
  359. Scanf        macro
  360.         ifndef    sl_scanf
  361. stdlib        segment    para public 'slcode'
  362.         extrn    sl_scanf:far
  363. stdlib        ends                
  364.         endif
  365.         slcall    sl_scanf
  366.         endm
  367. ;
  368. SScanf        macro
  369.         ifndef    sl_sscanf
  370. stdlib        segment    para public 'slcode'
  371.         extrn    sl_sscanf:far
  372. stdlib        ends                
  373.         endif
  374.         slcall    sl_sscanf
  375.         endm
  376. ;
  377. ;
  378. ;---------------------------------------------------------------------------
  379. ;
  380. ;
  381. Putc        macro
  382.         ifndef    sl_putc
  383. stdlib        segment    para public 'slcode'
  384.         extrn    sl_putc:far
  385. stdlib        ends                
  386.         endif
  387.         slcall    sl_putc
  388.         endm
  389. ;
  390. ;
  391. Putcr        macro
  392.         ifndef    sl_putcr
  393. stdlib        segment    para public 'slcode'
  394.         extrn    sl_putcr:far
  395. stdlib        ends                
  396.         endif
  397.         slcall    sl_putcr
  398.         endm
  399. ;
  400. ;
  401. ;
  402. PutcStdOut    macro
  403.         ifndef    sl_putcStdOut
  404. stdlib        segment    para public 'slcode'
  405.         extrn    sl_putcStdOut:far
  406. stdlib        ends                
  407.         endif
  408.         slcall    sl_putcStdOut
  409.         endm
  410. ;
  411. ;
  412. ;
  413. PutcBIOS    macro
  414.         ifndef    sl_putcBIOS
  415. stdlib        segment    para public 'slcode'
  416.         extrn    sl_putcBIOS:far
  417. stdlib        ends                
  418.         endif
  419.         slcall    sl_putcBIOS
  420.         endm
  421. ;
  422. ;
  423. ;
  424. SetOutAdrs    macro
  425.         ifndef    sl_SetOutAdrs
  426. stdlib        segment    para public 'slcode'
  427.         extrn    sl_SetOutAdrs:far
  428. stdlib        ends                
  429.         endif
  430.         slcall    sl_SetOutAdrs
  431.         endm
  432. ;
  433. ;
  434. GetOutAdrs    macro
  435.         ifndef    sl_GetOutAdrs
  436. stdlib        segment    para public 'slcode'
  437.         extrn    sl_GetOutAdrs:far
  438. stdlib        ends                
  439.         endif
  440.         slcall    sl_GetOutAdrs
  441.         endm
  442. ;
  443. ;
  444. PushOutAdrs    macro
  445.         ifndef    sl_PushOutAdrs
  446. stdlib        segment    para public 'slcode'
  447.         extrn    sl_PushOutAdrs:far
  448. stdlib        ends                
  449.         endif
  450.         slcall    sl_PushOutAdrs
  451.         endm
  452. ;
  453. ;
  454. PopOutAdrs    macro
  455.         ifndef    sl_PopOutAdrs
  456. stdlib        segment    para public 'slcode'
  457.         extrn    sl_PopOutAdrs:far
  458. stdlib        ends                
  459.         endif
  460.         slcall    sl_PopOutAdrs
  461.         endm
  462. ;
  463. ;
  464. PutISize    macro
  465.         ifndef    sl_putisize
  466. stdlib        segment    para public 'slcode'
  467.         extrn    sl_putisize:far
  468. stdlib        ends                
  469.         endif
  470.         slcall    sl_putisize
  471.         endm
  472. ;
  473. ;
  474. PutUSize    macro
  475.         ifndef    sl_putusize
  476. stdlib        segment    para public 'slcode'
  477.         extrn    sl_putusize:far
  478. stdlib        ends                
  479.         endif
  480.         slcall    sl_putusize
  481.         endm
  482. ;
  483. ;
  484. ;
  485. PutLSize    macro
  486.         ifndef    sl_putlsize
  487. stdlib        segment    para public 'slcode'
  488.         extrn    sl_putlsize:far
  489. stdlib        ends                
  490.         endif
  491.         slcall    sl_putlsize
  492.         endm
  493. ;
  494. ;
  495. PutULSize    macro
  496.         ifndef    sl_putulsize
  497. stdlib        segment    para public 'slcode'
  498.         extrn    sl_putulsize:far
  499. stdlib        ends                
  500.         endif
  501.         slcall    sl_putulsize
  502.         endm
  503. ;
  504. ;
  505. ;---------------------------------------------------------------------------
  506. ;
  507. ;
  508. Puts        macro
  509.         ifndef    sl_puts
  510. stdlib        segment    para public 'slcode'
  511.         extrn    sl_puts:far
  512. stdlib        ends                
  513.         endif
  514.         slcall    sl_puts
  515.         endm
  516. ;
  517. ;
  518. ;----------------------------------------------------------------------------
  519. ;
  520. ;
  521. Puth        macro
  522.         ifndef    sl_puth
  523. stdlib        segment    para public 'slcode'
  524.         extrn    sl_puth:far
  525. stdlib        ends                
  526.         endif
  527.         slcall    sl_puth
  528.         endm
  529. ;
  530. ;
  531. Putw        macro
  532.         ifndef    sl_putw
  533. stdlib        segment    para public 'slcode'
  534.         extrn    sl_putw:far
  535. stdlib        ends                
  536.         endif
  537.         slcall    sl_putw
  538.         endm
  539. ;
  540. ;---------------------------------------------------------------------------
  541. ;
  542. Puti        macro
  543.         ifndef    sl_puti
  544. stdlib        segment    para public 'slcode'
  545.         extrn    sl_puti:far
  546. stdlib        ends                
  547.         endif
  548.         slcall    sl_puti
  549.         endm
  550. ;
  551. ;
  552. Putu        macro
  553.         ifndef    sl_putu
  554. stdlib        segment    para public 'slcode'
  555.         extrn    sl_putu:far
  556. stdlib        ends                
  557.         endif
  558.         slcall    sl_putu
  559.         endm
  560. ;
  561. ;
  562. ;
  563. Putl        macro
  564.         ifndef    sl_putl
  565. stdlib        segment    para public 'slcode'
  566.         extrn    sl_putl:far
  567. stdlib        ends                
  568.         endif
  569.         slcall    sl_putl
  570.         endm
  571. ;
  572. ;
  573. PutUL        macro
  574.         ifndef    sl_putul
  575. stdlib        segment    para public 'slcode'
  576.         extrn    sl_putul:far
  577. stdlib        ends                
  578.         endif
  579.         slcall    sl_putul
  580.         endm
  581. ;
  582. ;
  583. ;--------------------------------------------------------------------------
  584. ;
  585. ;
  586. itoa        macro
  587.         ifndef    sl_itoa
  588. stdlib        segment    para public 'slcode'
  589.         extrn    sl_itoa:far
  590. stdlib        ends
  591.         endif
  592.         slcall    sl_itoa
  593.         endm
  594. ;
  595. ;
  596. itoam        macro
  597.         ifndef    sl_itoam
  598. stdlib        segment    para public 'slcode'
  599.         extrn    sl_itoam:far
  600. stdlib        ends
  601.         endif
  602.         slcall    sl_itoam
  603.         endm
  604. ;
  605. itoa2        macro
  606.         ifndef    sl_itoa2
  607. stdlib        segment    para public 'slcode'
  608.         extrn    sl_itoa2:far
  609. stdlib        ends
  610.         endif
  611.         slcall    sl_itoa2
  612.         endm
  613. ;
  614. ;
  615. utoa        macro
  616.         ifndef    sl_utoa
  617. stdlib        segment    para public 'slcode'
  618.         extrn    sl_utoa:far
  619. stdlib        ends
  620.         endif
  621.         slcall    sl_utoa
  622.         endm
  623. ;
  624. utoam        macro
  625.         ifndef    sl_utoam
  626. stdlib        segment    para public 'slcode'
  627.         extrn    sl_utoam:far
  628. stdlib        ends
  629.         endif
  630.         slcall    sl_utoam
  631.         endm
  632. ;
  633. utoa2        macro
  634.         ifndef    sl_utoa2
  635. stdlib        segment    para public 'slcode'
  636.         extrn    sl_utoa2:far
  637. stdlib        ends
  638.         endif
  639.         slcall    sl_utoa2
  640.         endm
  641. ;
  642. ;
  643. ;
  644. htoa        macro
  645.         ifndef    sl_htoa
  646. stdlib        segment    para public 'slcode'
  647.         extrn    sl_htoa:far
  648. stdlib        ends
  649.         endif
  650.         slcall    sl_htoa
  651.         endm
  652. ;
  653. htoam        macro
  654.         ifndef    sl_htoam
  655. stdlib        segment    para public 'slcode'
  656.         extrn    sl_htoam:far
  657. stdlib        ends
  658.         endif
  659.         slcall    sl_htoam
  660.         endm
  661. ;
  662. htoa2        macro
  663.         ifndef    sl_htoa2
  664. stdlib        segment    para public 'slcode'
  665.         extrn    sl_htoa2:far
  666. stdlib        ends
  667.         endif
  668.         slcall    sl_htoa2
  669.         endm
  670. ;
  671. ;
  672. wtoa        macro
  673.         ifndef    sl_wtoa
  674. stdlib        segment    para public 'slcode'
  675.         extrn    sl_wtoa:far
  676. stdlib        ends
  677.         endif
  678.         slcall    sl_wtoa
  679.         endm
  680. ;
  681. wtoam        macro
  682.         ifndef    sl_wtoam
  683. stdlib        segment    para public 'slcode'
  684.         extrn    sl_wtoam:far
  685. stdlib        ends
  686.         endif
  687.         slcall    sl_wtoam
  688.         endm
  689. ;
  690. wtoa2        macro
  691.         ifndef    sl_wtoa2
  692. stdlib        segment    para public 'slcode'
  693.         extrn    sl_wtoa2:far
  694. stdlib        ends
  695.         endif
  696.         slcall    sl_wtoa2
  697.         endm
  698. ;
  699. ;
  700. ;
  701. ltoa        macro
  702.         ifndef    sl_ltoa
  703. stdlib        segment    para public 'slcode'
  704.         extrn    sl_ltoa:far
  705. stdlib        ends
  706.         endif
  707.         slcall    sl_ltoa
  708.         endm
  709. ;
  710. ltoam        macro
  711.         ifndef    sl_ltoam
  712. stdlib        segment    para public 'slcode'
  713.         extrn    sl_ltoam:far
  714. stdlib        ends
  715.         endif
  716.         slcall    sl_ltoam
  717.         endm
  718. ;
  719. ltoa2        macro
  720.         ifndef    sl_ltoa2
  721. stdlib        segment    para public 'slcode'
  722.         extrn    sl_ltoa2:far
  723. stdlib        ends
  724.         endif
  725.         slcall    sl_ltoa2
  726.         endm
  727. ;
  728. ;
  729. ;
  730. ultoa        macro
  731.         ifndef    sl_ultoa
  732. stdlib        segment    para public 'slcode'
  733.         extrn    sl_ultoa:far
  734. stdlib        ends
  735.         endif
  736.         slcall    sl_ultoa
  737.         endm
  738. ;
  739. ultoam        macro
  740.         ifndef    sl_ultoam
  741. stdlib        segment    para public 'slcode'
  742.         extrn    sl_ultoam:far
  743. stdlib        ends
  744.         endif
  745.         slcall    sl_ultoam
  746.         endm
  747. ;
  748. ultoa2        macro
  749.         ifndef    sl_ultoa2
  750. stdlib        segment    para public 'slcode'
  751.         extrn    sl_ultoa2:far
  752. stdlib        ends
  753.         endif
  754.         slcall    sl_ultoa2
  755.         endm
  756. ;
  757. ;
  758. ;
  759. MemInit        macro
  760.         ifndef    sl_MemInit
  761. stdlib        segment    para public 'slcode'
  762.         extrn    sl_MemInit:far
  763. stdlib        ends
  764.         endif
  765.         slcall    sl_MemInit
  766.         endm
  767. ;
  768. ;
  769. ;
  770. malloc        macro
  771.         ifndef    sl_malloc
  772. stdlib        segment    para public 'slcode'
  773.         extrn    sl_malloc:far
  774. stdlib        ends
  775.         endif
  776.         slcall    sl_malloc
  777.         endm
  778. ;
  779. ;
  780. realloc        macro
  781.         ifndef    sl_realloc
  782. stdlib        segment    para public 'slcode'
  783.         extrn    sl_realloc:far
  784. stdlib        ends
  785.         endif
  786.         slcall    sl_realloc
  787.         endm
  788. ;
  789. ;
  790. DupPtr        macro
  791.         ifndef    sl_dupptr
  792. stdlib        segment    para public 'slcode'
  793.         extrn    sl_dupptr:far
  794. stdlib        ends
  795.         endif
  796.         slcall    sl_dupptr
  797.         endm
  798. ;
  799. ;
  800. free        macro
  801.         ifndef    sl_free
  802. stdlib        segment    para public 'slcode'
  803.         extrn    sl_free:far
  804. stdlib        ends
  805.         endif
  806.         slcall    sl_free
  807.         endm
  808. ;
  809. ;
  810. ;
  811. ;
  812. IsInHeap    macro
  813.         ifndef    sl_IsInHeap
  814. stdlib        segment    para public 'slcode'
  815.         extrn    sl_IsInHeap:far
  816. stdlib        ends
  817.         endif
  818.         slcall    sl_IsInHeap
  819.         endm
  820. ;
  821. ;
  822. IsPtr        macro
  823.         ifndef    sl_IsPtr
  824. stdlib        segment    para public 'slcode'
  825.         extrn    sl_IsPtr:far
  826. stdlib        ends
  827.         endif
  828.         slcall    sl_IsPtr
  829.         endm
  830. ;
  831. ;
  832. ;---------------------------------------------------------------------------
  833. ;
  834. IsAlNum        macro
  835.         ifndef    sl_IsAlNum
  836. stdlib        segment    para public 'slcode'
  837.         extrn    sl_IsAlNum:far
  838. stdlib        ends
  839.         endif
  840.         slcall    sl_IsAlNum
  841.         endm
  842. ;
  843. ;
  844. ; IsxDigit- Checks al to see if it is a hex digit.
  845. ;
  846. IsxDigit    macro
  847.         ifndef    sl_IsxDigit
  848. stdlib        segment    para public 'slcode'
  849.         extrn    sl_IsxDigit:far
  850. stdlib        ends
  851.         endif
  852.         slcall    sl_IsxDigit
  853.         endm
  854. ;
  855. ;
  856. ;
  857. ToLower        macro
  858.         local    NoCnvrt
  859.         cmp    al, 'A'
  860.         jb    NoCnvrt
  861.         cmp    al, 'Z'
  862.         ja    NoCnvrt
  863.         or    al, 20h
  864. NoCnvrt:
  865.         endm
  866. ;
  867. ;
  868. ;
  869. ToUpper        macro
  870.         local    NoCnvrt
  871.         cmp    al, 'a'
  872.         jb    NoCnvrt
  873.         cmp    al, 'z'
  874.         ja    NoCnvrt
  875.         and    al, 05fh
  876. NoCnvrt:
  877.         endm
  878. ;
  879. ;
  880. ;
  881. IsDigit        macro
  882.         local    NotDigit, IsDigit
  883.         cmp    al, '0'
  884.         jb    NotDigit         ;Note: this also clears ZF.
  885.         cmp    al, '9'
  886.         ja    NotDigit        ;Also clears ZF.
  887.         cmp    al, al            ;Set Zero flag
  888. NotDigit:
  889.         endm
  890. ;
  891. ;
  892. ;
  893. IsAlpha        macro
  894.         local    IsAl, NotAlpha
  895.         cmp    al, 'A'
  896.         jb    NotAlpha        ;Also clears ZF.
  897.         cmp    al, 'Z'
  898.         jbe    IsAl
  899.         cmp    al, 'a'
  900.         jb    NotAlpha
  901.         cmp    al, 'z'
  902.         ja    NotAlpha
  903. IsAl:        cmp    al, al            ;Set ZF.
  904. NotAlpha:
  905.         endm
  906. ;
  907. ;
  908. IsLower        macro
  909.         local    NotLower
  910.         cmp    al, 'a'
  911.         jb    NotLower
  912.         cmp    al, 'z'
  913.         ja    NotLower
  914.         cmp    al, al            ;Set ZF.
  915. NotLower:
  916.         endm
  917. ;
  918. ;
  919. ; IsUpper-    Checks to see if the character in al is upper case.
  920. ;
  921. IsUpper        macro
  922.         local    NotUpper
  923.         cmp    al, 'A'
  924.         jb    NotUpper
  925.         cmp    al, 'Z'
  926.         ja    NotUpper
  927.         cmp    al, al            ;Set ZF.
  928. NotUpper:
  929.         endm
  930. ;
  931. ;
  932. ;--------------------------------------------------------------------------
  933. ;
  934. ;
  935. strcpy        macro
  936.         ifndef    sl_strcpy
  937. stdlib        segment    para public 'slcode'
  938.         extrn    sl_strcpy:far
  939. stdlib        ends
  940.         endif
  941.         slcall    sl_strcpy
  942.         endm
  943. ;
  944. ;
  945. ;
  946. ;
  947. strcpyl        macro
  948.         ifndef    sl_strcpyl
  949. stdlib        segment    para public 'slcode'
  950.         extrn    sl_strcpyl:far
  951. stdlib        ends
  952.         endif
  953.         slcall    sl_strcpyl
  954.         endm
  955. ;
  956. ;
  957. ;
  958. strdup        macro
  959.         ifndef    sl_strdup
  960. stdlib        segment    para public 'slcode'
  961.         extrn    sl_strdup:far
  962. stdlib        ends
  963.         endif
  964.         slcall    sl_strdup
  965.         endm
  966. ;
  967. ;
  968. ;
  969. strdupl        macro
  970.         ifndef    sl_strdupl
  971. stdlib        segment    para public 'slcode'
  972.         extrn    sl_strdupl:far
  973. stdlib        ends
  974.         endif
  975.         slcall    sl_strdupl
  976.         endm
  977. ;
  978. ;
  979. strlen        macro
  980.         ifndef    sl_strlen
  981. stdlib        segment    para public 'slcode'
  982.         extrn    sl_strlen:far
  983. stdlib        ends
  984.         endif
  985.         slcall    sl_strlen
  986.         endm
  987. ;
  988. ;
  989. strcat        macro
  990.         ifndef    sl_strcat
  991. stdlib        segment    para public 'slcode'
  992.         extrn    sl_strcat:far
  993. stdlib        ends
  994.         endif
  995.         slcall    sl_strcat
  996.         endm
  997. ;
  998. ;
  999. strcatl        macro
  1000.         ifndef    sl_strcatl
  1001. stdlib        segment    para public 'slcode'
  1002.         extrn    sl_strcatl:far
  1003. stdlib        ends
  1004.         endif
  1005.         slcall    sl_strcatl
  1006.         endm
  1007. ;
  1008. ;
  1009. strcatm        macro
  1010.         ifndef    sl_strcatm
  1011. stdlib        segment    para public 'slcode'
  1012.         extrn    sl_strcatm:far
  1013. stdlib        ends
  1014.         endif
  1015.         slcall    sl_strcatm
  1016.         endm
  1017. ;
  1018. ;
  1019. ;
  1020. strcatml    macro
  1021.         ifndef    sl_strcatml
  1022. stdlib        segment    para public 'slcode'
  1023.         extrn    sl_strcatml:far
  1024. stdlib        ends
  1025.         endif
  1026.         slcall    sl_strcatml
  1027.         endm
  1028. ;
  1029. ;
  1030. ;
  1031. strchr        macro
  1032.         ifndef    sl_strchr
  1033. stdlib        segment    para public 'slcode'
  1034.         extrn    sl_strchr:far
  1035. stdlib        ends
  1036.         endif
  1037.         slcall    sl_strchr
  1038.         endm
  1039. ;
  1040. ;
  1041. strstr        macro
  1042.         ifndef    sl_strstr
  1043. stdlib        segment    para public 'slcode'
  1044.         extrn    sl_strstr:far
  1045. stdlib        ends
  1046.         endif
  1047.         slcall    sl_strstr
  1048.         endm
  1049. ;
  1050. ;
  1051. ;
  1052. strstrl        macro
  1053.         ifndef    sl_strstrl
  1054. stdlib        segment    para public 'slcode'
  1055.         extrn    sl_strstrl:far
  1056. stdlib        ends
  1057.         endif
  1058.         slcall    sl_strstrl
  1059.         endm
  1060. ;
  1061. ;
  1062. ;
  1063. strcmp        macro
  1064.         ifndef    sl_strcmp
  1065. stdlib        segment    para public 'slcode'
  1066.         extrn    sl_strcmp:far
  1067. stdlib        ends
  1068.         endif
  1069.         slcall    sl_strcmp
  1070.         endm
  1071. ;
  1072. ;
  1073. ; stricmp-    As with strcmp above, except it is case insensitive.
  1074. ;
  1075. stricmp        macro
  1076.         ifndef    sl_stricmp
  1077. stdlib        segment    para public 'slcode'
  1078.         extrn    sl_stricmp:far
  1079. stdlib        ends
  1080.         endif
  1081.         slcall    sl_stricmp
  1082.         endm
  1083. ;
  1084. ;
  1085. stricmpl    macro
  1086.         ifndef    sl_stricmpl
  1087. stdlib        segment    para public 'slcode'
  1088.         extrn    sl_stricmpl:far
  1089. stdlib        ends
  1090.         endif
  1091.         slcall    sl_stricmpl
  1092.         endm
  1093. ;
  1094. strcmpl        macro
  1095.         ifndef    sl_strcmpl
  1096. stdlib        segment    para public 'slcode'
  1097.         extrn    sl_strcmpl:far
  1098. stdlib        ends
  1099.         endif
  1100.         slcall    sl_strcmpl
  1101.         endm
  1102. ;
  1103. ;
  1104. strupr        macro
  1105.         ifndef    sl_strupr
  1106. stdlib        segment    para public 'slcode'
  1107.         extrn    sl_strupr:far
  1108. stdlib        ends
  1109.         endif
  1110.         slcall    sl_strupr
  1111.         endm
  1112. ;
  1113. ;
  1114. struprm        macro
  1115.         ifndef    sl_struprm
  1116. stdlib        segment    para public 'slcode'
  1117.         extrn    sl_struprm:far
  1118. stdlib        ends
  1119.         endif
  1120.         slcall    sl_struprm
  1121.         endm
  1122. ;
  1123. ;
  1124. strlwr        macro
  1125.         ifndef    sl_strlwr
  1126. stdlib        segment    para public 'slcode'
  1127.         extrn    sl_strlwr:far
  1128. stdlib        ends
  1129.         endif
  1130.         slcall    sl_strlwr
  1131.         endm
  1132. ;
  1133. ;
  1134. strlwrm        macro
  1135.         ifndef    sl_strlwrm
  1136. stdlib        segment    para public 'slcode'
  1137.         extrn    sl_strlwrm:far
  1138. stdlib        ends
  1139.         endif
  1140.         slcall    sl_strlwrm
  1141.         endm
  1142. ;
  1143. ;
  1144. strset        macro
  1145.         ifndef    sl_strset
  1146. stdlib        segment    para public 'slcode'
  1147.         extrn    sl_strset:far
  1148. stdlib        ends
  1149.         endif
  1150.         slcall    sl_strset
  1151.         endm
  1152. ;
  1153. ;
  1154. strsetm        macro
  1155.         ifndef    sl_strsetm
  1156. stdlib        segment    para public 'slcode'
  1157.         extrn    sl_strsetm:far
  1158. stdlib        ends
  1159.         endif
  1160.         slcall    sl_strsetm
  1161.         endm
  1162. ;
  1163. ;
  1164. strspan        macro
  1165.         ifndef    sl_strspan
  1166. stdlib        segment    para public 'slcode'
  1167.         extrn    sl_strspan:far
  1168. stdlib        ends
  1169.         endif
  1170.         slcall    sl_strspan
  1171.         endm
  1172. ;
  1173. ;
  1174. ;
  1175. strspanl    macro
  1176.         ifndef    sl_strspanl
  1177. stdlib        segment    para public 'slcode'
  1178.         extrn    sl_strspanl:far
  1179. stdlib        ends
  1180.         endif
  1181.         slcall    sl_strspanl
  1182.         endm
  1183. ;
  1184. ;
  1185. ;
  1186. strcspan    macro
  1187.         ifndef    sl_strcspan
  1188. stdlib        segment    para public 'slcode'
  1189.         extrn    sl_strcspan:far
  1190. stdlib        ends
  1191.         endif
  1192.         slcall    sl_strcspan
  1193.         endm
  1194. ;
  1195. ;
  1196. ;
  1197. strcspanl    macro
  1198.         ifndef    sl_strcspanl
  1199. stdlib        segment    para public 'slcode'
  1200.         extrn    sl_strcspanl:far
  1201. stdlib        ends
  1202.         endif
  1203.         slcall    sl_strcspanl
  1204.         endm
  1205. ;
  1206. ;
  1207. strins        macro
  1208.         ifndef    sl_strins
  1209. stdlib        segment    para public 'slcode'
  1210.         extrn    sl_strins:far
  1211. stdlib        ends
  1212.         endif
  1213.         slcall    sl_strins
  1214.         endm
  1215. ;
  1216. strinsl        macro
  1217.         ifndef    sl_strinsl
  1218. stdlib        segment    para public 'slcode'
  1219.         extrn    sl_strinsl:far
  1220. stdlib        ends
  1221.         endif
  1222.         slcall    sl_strinsl
  1223.         endm
  1224. ;
  1225. ;
  1226. strinsm        macro
  1227.         ifndef    sl_strinsm
  1228. stdlib        segment    para public 'slcode'
  1229.         extrn    sl_strinsm:far
  1230. stdlib        ends
  1231.         endif
  1232.         slcall    sl_strinsm
  1233.         endm
  1234. ;
  1235. strinsml    macro
  1236.         ifndef    sl_strinsml
  1237. stdlib        segment    para public 'slcode'
  1238.         extrn    sl_strinsml:far
  1239. stdlib        ends
  1240.         endif
  1241.         slcall    sl_strinsml
  1242.         endm
  1243. ;
  1244. strdel        macro
  1245.         ifndef    sl_strdel
  1246. stdlib        segment    para public 'slcode'
  1247.         extrn    sl_strdel:far
  1248. stdlib        ends
  1249.         endif
  1250.         slcall    sl_strdel
  1251.         endm
  1252. ;
  1253. strdelm        macro
  1254.         ifndef    sl_strdelm
  1255. stdlib        segment    para public 'slcode'
  1256.         extrn    sl_strdelm:far
  1257. stdlib        ends
  1258.         endif
  1259.         slcall    sl_strdelm
  1260.         endm
  1261. ;
  1262. strrev        macro
  1263.         ifndef    sl_strrev
  1264. stdlib        segment    para public 'slcode'
  1265.         extrn    sl_strrev:far
  1266. stdlib        ends
  1267.         endif
  1268.         slcall    sl_strrev
  1269.         endm
  1270. ;
  1271. strrevm        macro
  1272.         ifndef    sl_strrevm
  1273. stdlib        segment    para public 'slcode'
  1274.         extrn    sl_strrevm:far
  1275. stdlib        ends
  1276.         endif
  1277.         slcall    sl_strrevm
  1278.         endm
  1279. ;
  1280. ;
  1281. ;
  1282. ;
  1283. set        macro    n0,n1,n2,n3,n4,n5,n6,n7
  1284. n0        db    1
  1285. n1        db    2
  1286. n2        db    4
  1287. n3        db    8
  1288. n4        db    10h
  1289. n5        db    20h
  1290. n6        db    40h
  1291. n7        db    80h
  1292.         db    264 dup (0)
  1293.         endm
  1294. ;
  1295. ;
  1296. CreateSets    macro
  1297.         ifndef    sl_CreateSets
  1298. stdlib        segment    para public 'slcode'
  1299.         extrn    sl_CreateSets:far
  1300. stdlib        ends
  1301.         endif
  1302.         slcall    sl_CreateSets
  1303.         endm
  1304. ;
  1305. ;
  1306. EmptySet    macro
  1307.         ifndef    sl_EmptySet
  1308. stdlib        segment    para public 'slcode'
  1309.         extrn    sl_EmptySet:far
  1310. stdlib        ends
  1311.         endif
  1312.         slcall    sl_EmptySet
  1313.         endm
  1314. ;
  1315. ;
  1316. RangeSet    macro
  1317.         ifndef    sl_RangeSet
  1318. stdlib        segment    para public 'slcode'
  1319.         extrn    sl_RangeSet:far
  1320. stdlib        ends
  1321.         endif
  1322.         slcall    sl_RangeSet
  1323.         endm
  1324. ;
  1325. ;
  1326. AddStr        macro
  1327.         ifndef    sl_AddStr
  1328. stdlib        segment    para public 'slcode'
  1329.         extrn    sl_AddStr:far
  1330. stdlib        ends
  1331.         endif
  1332.         slcall    sl_AddStr
  1333.         endm
  1334. ;
  1335. ;
  1336. AddStrl        macro
  1337.         ifndef    sl_AddStrl
  1338. stdlib        segment    para public 'slcode'
  1339.         extrn    sl_AddStrl:far
  1340. stdlib        ends
  1341.         endif
  1342.         slcall    sl_AddStrl
  1343.         endm
  1344. ;
  1345. ;
  1346. RmvStr        macro
  1347.         ifndef    sl_RmvStr
  1348. stdlib        segment    para public 'slcode'
  1349.         extrn    sl_RmvStr:far
  1350. stdlib        ends
  1351.         endif
  1352.         slcall    sl_RmvStr
  1353.         endm
  1354. ;
  1355. ;
  1356. RmvStrl        macro
  1357.         ifndef    sl_RmvStrl
  1358. stdlib        segment    para public 'slcode'
  1359.         extrn    sl_RmvStrl:far
  1360. stdlib        ends
  1361.         endif
  1362.         slcall    sl_RmvStrl
  1363.         endm
  1364. ;
  1365. ;
  1366. AddChar        macro
  1367.         ifndef    sl_AddChar
  1368. stdlib        segment    para public 'slcode'
  1369.         extrn    sl_AddChar:far
  1370. stdlib        ends
  1371.         endif
  1372.         slcall    sl_AddChar
  1373.         endm
  1374. ;
  1375. ;
  1376. RmvChar        macro
  1377.         ifndef    sl_RmvChar
  1378. stdlib        segment    para public 'slcode'
  1379.         extrn    sl_RmvChar:far
  1380. stdlib        ends
  1381.         endif
  1382.         slcall    sl_RmvChar
  1383.         endm
  1384. ;
  1385. ;
  1386. Member        macro
  1387.         ifndef    sl_member
  1388. stdlib        segment    para public 'slcode'
  1389.         extrn    sl_member:far
  1390. stdlib        ends
  1391.         endif
  1392.         slcall    sl_member
  1393.         endm
  1394. ;
  1395. ;
  1396. CopySet        macro
  1397.         ifndef    sl_CopySet
  1398. stdlib        segment    para public 'slcode'
  1399.         extrn    sl_CopySet:far
  1400. stdlib        ends
  1401.         endif
  1402.         slcall    sl_CopySet
  1403.         endm
  1404. ;
  1405. ;
  1406. setunion    macro
  1407.         ifndef    sl_union
  1408. stdlib        segment    para public 'slcode'
  1409.         extrn    sl_union:far
  1410. stdlib        ends
  1411.         endif
  1412.         slcall    sl_union
  1413.         endm
  1414. ;
  1415. ;
  1416. SetIntersect    macro
  1417.         ifndef    sl_Intersect
  1418. stdlib        segment    para public 'slcode'
  1419.         extrn    sl_Intersect:far
  1420. stdlib        ends
  1421.         endif
  1422.         slcall    sl_Intersect
  1423.         endm
  1424. ;
  1425. ;
  1426. SetDifference    macro
  1427.         ifndef    sl_Difference
  1428. stdlib        segment    para public 'slcode'
  1429.         extrn    sl_Difference:far
  1430. stdlib        ends
  1431.         endif
  1432.         slcall    sl_Difference
  1433.         endm
  1434. ;
  1435. ;
  1436. NextItem    macro
  1437.         ifndef    sl_NextItem
  1438. stdlib        segment    para public 'slcode'
  1439.         extrn    sl_NextItem:far
  1440. stdlib        ends
  1441.         endif
  1442.         slcall    sl_NextItem
  1443.         endm
  1444. ;
  1445. ;
  1446. RmvItem        macro
  1447.         ifndef    sl_RmvItem
  1448. stdlib        segment    para public 'slcode'
  1449.         extrn    sl_RmvItem:far
  1450. stdlib        ends
  1451.         endif
  1452.         slcall    sl_RmvItem
  1453.         endm
  1454. ;
  1455. ;---------------------------------------------------------------------------
  1456. ;
  1457. ;
  1458. ; Macros for floating point arithmetic.
  1459. ;
  1460. ; Load single precision value into FPACC:
  1461. ;
  1462. lsfpa        macro
  1463.         ifndef    sl_lsfpa
  1464. stdlib        segment    para public 'slcode'
  1465.         extrn    sl_lsfpa:far
  1466. stdlib        ends
  1467.         endif
  1468.         call    sl_lsfpa
  1469.         endm
  1470. ;
  1471. ;
  1472. ; Store FPACC to a single precision value:
  1473. ;
  1474. ssfpa        macro
  1475.         ifndef    sl_ssfpa
  1476. stdlib        segment    para public 'slcode'
  1477.         extrn    sl_ssfpa:far
  1478. stdlib        ends
  1479.         endif
  1480.         call    sl_ssfpa
  1481.         endm
  1482. ;
  1483. ; Load double precision value into FPACC:
  1484. ;
  1485. ldfpa        macro
  1486.         ifndef    sl_ldfpa
  1487. stdlib        segment    para public 'slcode'
  1488.         extrn    sl_ldfpa:far
  1489. stdlib        ends
  1490.         endif
  1491.         call    sl_ldfpa
  1492.         endm
  1493. ;
  1494. ;
  1495. ; Store FPACC into a double precision variable:
  1496. ;
  1497. sdfpa        macro
  1498.         ifndef    sl_sdfpa
  1499. stdlib        segment    para public 'slcode'
  1500.         extrn    sl_sdfpa:far
  1501. stdlib        ends
  1502.         endif
  1503.         call    sl_sdfpa
  1504.         endm
  1505. ;
  1506. ;
  1507. ; Load extended precision value into FPACC:
  1508. ;
  1509. lefpa        macro
  1510.         ifndef    sl_lefpa
  1511. stdlib        segment    para public 'slcode'
  1512.         extrn    sl_lefpa:far
  1513. stdlib        ends
  1514.         endif
  1515.         call    sl_lefpa
  1516.         endm
  1517. ;
  1518. ; Load double precision value into FPACC:
  1519. ;
  1520. lefpal        macro
  1521.         ifndef    sl_lefpal
  1522. stdlib        segment    para public 'slcode'
  1523.         extrn    sl_lefpal:far
  1524. stdlib        ends
  1525.         endif
  1526.         call    sl_lefpal
  1527.         endm
  1528. ;
  1529. ; Store FPACC into an extended precision variable:
  1530. ;
  1531. sefpa        macro
  1532.         ifndef    sl_sefpa
  1533. stdlib        segment    para public 'slcode'
  1534.         extrn    sl_sefpa:far
  1535. stdlib        ends
  1536.         endif
  1537.         call    sl_sefpa
  1538.         endm
  1539. ;
  1540. ; Load single precision value into FPOP:
  1541. ;
  1542. lsfpo        macro
  1543.         ifndef    sl_lsfpo
  1544. stdlib        segment    para public 'slcode'
  1545.         extrn    sl_lsfpo:far
  1546. stdlib        ends
  1547.         endif
  1548.         call    sl_lsfpo
  1549.         endm
  1550. ;
  1551. ; Load double precision value into FPOP:
  1552. ;
  1553. ldfpo        macro
  1554.         ifndef    sl_ldfpo
  1555. stdlib        segment    para public 'slcode'
  1556.         extrn    sl_ldfpo:far
  1557. stdlib        ends
  1558.         endif
  1559.         call    sl_ldfpo
  1560.         endm
  1561. ;
  1562. ; Load extended precision value into FPOP:
  1563. ;
  1564. lefpo        macro
  1565.         ifndef    sl_lefpo
  1566. stdlib        segment    para public 'slcode'
  1567.         extrn    sl_lefpo:far
  1568. stdlib        ends
  1569.         endif
  1570.         call    sl_lefpo
  1571.         endm
  1572. ;
  1573. ; Load extended precision value into FPOP:
  1574. ;
  1575. lefpol        macro
  1576.         ifndef    sl_lefpol
  1577. stdlib        segment    para public 'slcode'
  1578.         extrn    sl_lefpol:far
  1579. stdlib        ends
  1580.         endif
  1581.         call    sl_lefpol
  1582.         endm
  1583. ;
  1584. ; ITOF-    Convert integer to floating point.
  1585. ;
  1586. itof        macro
  1587.         ifndef    sl_itof
  1588. stdlib        segment    para public 'slcode'
  1589.         extrn    sl_itof:far
  1590. stdlib        ends
  1591.         endif
  1592.         call    sl_itof
  1593.         endm
  1594. ;
  1595. ; UTOF-    Convert unsigned integer to floating point.
  1596. ;
  1597. utof        macro
  1598.         ifndef    sl_utof
  1599. stdlib        segment    para public 'slcode'
  1600.         extrn    sl_utof:far
  1601. stdlib        ends
  1602.         endif
  1603.         call    sl_utof
  1604.         endm
  1605. ;
  1606. ; ULTOF-    Convert unsigned 32-bit integer to floating point.
  1607. ;
  1608. ultof        macro
  1609.         ifndef    sl_ultof
  1610. stdlib        segment    para public 'slcode'
  1611.         extrn    sl_ultof:far
  1612. stdlib        ends
  1613.         endif
  1614.         call    sl_ultof
  1615.         endm
  1616. ;
  1617. ; LTOF-    Convert 32-bit signed integer to floating point.
  1618. ;
  1619. ltof        macro
  1620.         ifndef    sl_ltof
  1621. stdlib        segment    para public 'slcode'
  1622.         extrn    sl_ltof:far
  1623. stdlib        ends
  1624.         endif
  1625.         call    sl_ltof
  1626.         endm
  1627. ;
  1628. ; ADD FPOP to FPACC:
  1629. ;
  1630. fpadd        macro
  1631.         ifndef    sl_fadd
  1632. stdlib        segment    para public 'slcode'
  1633.         extrn    sl_fadd:far
  1634. stdlib        ends
  1635.         endif
  1636.         call    sl_fadd
  1637.         endm
  1638. ;
  1639. ; Subtract FPOP from FPACC:
  1640. ;
  1641. fpsub        macro
  1642.         ifndef    sl_fsub
  1643. stdlib        segment    para public 'slcode'
  1644.         extrn    sl_fsub:far
  1645. stdlib        ends
  1646.         endif
  1647.         call    sl_fsub
  1648.         endm
  1649. ;
  1650. ;
  1651. ; Compare FPACC to FPOP:
  1652. ;
  1653. fpcmp        macro
  1654.         ifndef    sl_fcmp
  1655. stdlib        segment    para public 'slcode'
  1656.         extrn    sl_fcmp:far
  1657. stdlib        ends
  1658.         endif
  1659.         call    sl_fcmp
  1660.         endm
  1661. ;
  1662. ;
  1663. ; Multiply FPACC by FPOP:
  1664. ;
  1665. fpmul        macro
  1666.         ifndef    sl_fmul
  1667. stdlib        segment    para public 'slcode'
  1668.         extrn    sl_fmul:far
  1669. stdlib        ends
  1670.         endif
  1671.         call    sl_fmul
  1672.         endm
  1673. ;
  1674. ;
  1675. ; Divide FPACC by FPOP:
  1676. ;
  1677. fpdiv        macro
  1678.         ifndef    sl_fdiv
  1679. stdlib        segment    para public 'slcode'
  1680.         extrn    sl_fdiv:far
  1681. stdlib        ends
  1682.         endif
  1683.         call    sl_fdiv
  1684.         endm
  1685. ;
  1686. ;
  1687. ; Convert FPACC to a string of digits.
  1688. ;
  1689. ftoa        macro
  1690.         ifndef    sl_ftoa
  1691. stdlib        segment    para public 'slcode'
  1692.         extrn    sl_ftoa:far
  1693. stdlib        ends
  1694.         endif
  1695.         call    sl_ftoa
  1696.         endm
  1697. ;
  1698. ftoa2        macro
  1699.         ifndef    sl_ftoa2
  1700. stdlib        segment    para public 'slcode'
  1701.         extrn    sl_ftoa2:far
  1702. stdlib        ends
  1703.         endif
  1704.         call    sl_ftoa2
  1705.         endm
  1706. ;
  1707. ftoam        macro
  1708.         ifndef    sl_ftoam
  1709. stdlib        segment    para public 'slcode'
  1710.         extrn    sl_ftoam:far
  1711. stdlib        ends
  1712.         endif
  1713.         call    sl_ftoam
  1714.         endm
  1715. ;
  1716. ;
  1717. ; Convert FPACC to a string of digits (scientific notation)
  1718. ;
  1719. etoa        macro
  1720.         ifndef    sl_etoa
  1721. stdlib        segment    para public 'slcode'
  1722.         extrn    sl_etoa:far
  1723. stdlib        ends
  1724.         endif
  1725.         call    sl_etoa
  1726.         endm
  1727. ;
  1728. etoa2        macro
  1729.         ifndef    sl_etoa2
  1730. stdlib        segment    para public 'slcode'
  1731.         extrn    sl_etoa2:far
  1732. stdlib        ends
  1733.         endif
  1734.         call    sl_etoa2
  1735.         endm
  1736. ;
  1737. etoam        macro
  1738.         ifndef    sl_etoam
  1739. stdlib        segment    para public 'slcode'
  1740.         extrn    sl_etoam:far
  1741. stdlib        ends
  1742.         endif
  1743.         call    sl_etoam
  1744.         endm
  1745. ;
  1746. ;
  1747. ;
  1748. ; Convert a string of digits (scientific notation) to FPACC
  1749. ;
  1750. atof        macro
  1751.         ifndef    sl_atof
  1752. stdlib        segment    para public 'slcode'
  1753.         extrn    sl_atof:far
  1754. stdlib        ends
  1755.         endif
  1756.         call    sl_atof
  1757.         endm
  1758. ;
  1759. ;
  1760. ;
  1761. ;
  1762. ftoi        macro
  1763.         ifndef    sl_ftoi
  1764. stdlib        segment    para public 'slcode'
  1765.         extrn    sl_ftoi:far
  1766. stdlib        ends
  1767.         endif
  1768.         call    sl_ftoi
  1769.         endm
  1770. ;
  1771. ftou        macro
  1772.         ifndef    sl_ftou
  1773. stdlib        segment    para public 'slcode'
  1774.         extrn    sl_ftou:far
  1775. stdlib        ends
  1776.         endif
  1777.         call    sl_ftou
  1778.         endm
  1779. ;
  1780. ftol        macro
  1781.         ifndef    sl_ftol
  1782. stdlib        segment    para public 'slcode'
  1783.         extrn    sl_ftol:far
  1784. stdlib        ends
  1785.         endif
  1786.         call    sl_ftol
  1787.         endm
  1788. ;
  1789. ftoul        macro
  1790.         ifndef    sl_ftoul
  1791. stdlib        segment    para public 'slcode'
  1792.         extrn    sl_ftoul:far
  1793. stdlib        ends
  1794.         endif
  1795.         call    sl_ftoul
  1796.         endm
  1797. ;
  1798. AccOp        macro
  1799.         ifndef    sl_AccOp
  1800. stdlib        segment    para public 'slcode'
  1801.         extrn    sl_AccOp:far
  1802. stdlib        ends
  1803.         endif
  1804.         call    sl_AccOp
  1805.         endm
  1806. ;
  1807. XAccOp        macro
  1808.         ifndef    sl_XAccOp
  1809. stdlib        segment    para public 'slcode'
  1810.         extrn    sl_XAccOp:far
  1811. stdlib        ends
  1812.         endif
  1813.         call    sl_XAccOp
  1814.         endm
  1815. ;
  1816. putf        macro
  1817.         ifndef    sl_Putf
  1818. stdlib        segment    para public 'slcode'
  1819.         extrn    sl_Putf:far
  1820. stdlib        ends
  1821.         endif
  1822.         call    sl_Putf
  1823.         endm
  1824. ;
  1825. pute        macro
  1826.         ifndef    sl_Pute
  1827. stdlib        segment    para public 'slcode'
  1828.         extrn    sl_Pute:far
  1829. stdlib        ends
  1830.         endif
  1831.         call    sl_Pute
  1832.         endm
  1833. ;
  1834. ;
  1835. ;
  1836. ;***************************************************************************
  1837. ;
  1838. ; File I/O goodies
  1839. ;
  1840. fcreate        macro
  1841.         ifndef    sl_fcreate
  1842. stdlib        segment    para public 'slcode'
  1843.         extrn    sl_fcreate:far
  1844. stdlib        ends
  1845.         endif
  1846.         call    sl_fcreate
  1847.         endm
  1848. ;
  1849. fopen        macro
  1850.         ifndef    sl_fopen
  1851. stdlib        segment    para public 'slcode'
  1852.         extrn    sl_fopen:far
  1853. stdlib        ends
  1854.         endif
  1855.         call    sl_fopen
  1856.         endm
  1857. ;
  1858. fReadOn        macro
  1859.         ifndef    sl_fReadOn
  1860. stdlib        segment    para public 'slcode'
  1861.         extrn    sl_fReadOn:far
  1862. stdlib        ends
  1863.         endif
  1864.         call    sl_fReadOn
  1865.         endm
  1866. ;
  1867. fReadOff    macro
  1868.         ifndef    sl_fReadOff
  1869. stdlib        segment    para public 'slcode'
  1870.         extrn    sl_fReadOff:far
  1871. stdlib        ends
  1872.         endif
  1873.         call    sl_fReadOff
  1874.         endm
  1875. ;
  1876. fClose        macro
  1877.         ifndef    sl_fClose
  1878. stdlib        segment    para public 'slcode'
  1879.         extrn    sl_fClose:far
  1880. stdlib        ends
  1881.         endif
  1882.         call    sl_fClose
  1883.         endm
  1884. ;
  1885. fFlush        macro
  1886.         ifndef    sl_fFlush
  1887. stdlib        segment    para public 'slcode'
  1888.         extrn    sl_fFlush:far
  1889. stdlib        ends
  1890.         endif
  1891.         call    sl_fFlush
  1892.         endm
  1893. ;
  1894. fWriteOn    macro
  1895.         ifndef    sl_fWriteOn
  1896. stdlib        segment    para public 'slcode'
  1897.         extrn    sl_fWriteOn:far
  1898. stdlib        ends
  1899.         endif
  1900.         call    sl_fWriteOn
  1901.         endm
  1902. ;
  1903. fWriteOff    macro
  1904.         ifndef    sl_fWriteOff
  1905. stdlib        segment    para public 'slcode'
  1906.         extrn    sl_fWriteOff:far
  1907. stdlib        ends
  1908.         endif
  1909.         call    sl_fWriteOff
  1910.         endm
  1911. ;
  1912. fSeek        macro
  1913.         ifndef    sl_fSeek
  1914. stdlib        segment    para public 'slcode'
  1915.         extrn    sl_fSeek:far
  1916. stdlib        ends
  1917.         endif
  1918.         call    sl_fSeek
  1919.         endm
  1920. ;
  1921. DOSHandle    macro
  1922.         ifndef    sl_DOSHandle
  1923. stdlib        segment    para public 'slcode'
  1924.         extrn    sl_DOSHandle:far
  1925. stdlib        ends
  1926.         endif
  1927.         call    sl_DOSHandle
  1928.         endm
  1929. ;
  1930. fDel        macro
  1931.         ifndef    sl_fDel
  1932. stdlib        segment    para public 'slcode'
  1933.         extrn    sl_fDel:far
  1934. stdlib        ends
  1935.         endif
  1936.         call    sl_fDel
  1937.         endm
  1938. ;
  1939. fRename        macro
  1940.         ifndef    sl_fRename
  1941. stdlib        segment    para public 'slcode'
  1942.         extrn    sl_fRename:far
  1943. stdlib        ends
  1944.         endif
  1945.         call    sl_frename
  1946.         endm
  1947. ;
  1948. ;
  1949. ;
  1950. ; Intel hex conversion routine:
  1951. ;
  1952. ToHex        macro
  1953.         ifndef    sl_ToHex
  1954. stdlib        segment    para public 'slcode'
  1955.         extrn    sl_ToHex:far
  1956. stdlib        ends
  1957.         endif
  1958.         call    sl_ToHex
  1959.         endm
  1960. ;
  1961. ;
  1962. ; ARGC- Counts the command line parameters
  1963. ;
  1964. Argc        macro
  1965.         ifndef    sl_Argc
  1966. stdlib        segment    para public 'slcode'
  1967.         extrn    sl_Argc:far
  1968. stdlib        ends
  1969.         endif
  1970.         call    sl_Argc
  1971.         endm
  1972. ;
  1973. ; Argv-    Returns a specified cmd line parameter
  1974. ;
  1975. Argv        macro
  1976.         ifndef    sl_Argv
  1977. stdlib        segment    para public 'slcode'
  1978.         extrn    sl_Argv:far
  1979. stdlib        ends
  1980.         endif
  1981.         call    sl_Argv
  1982.         endm
  1983. ;
  1984. ;
  1985. ; Randomize-    Randomizes the random number generator
  1986. ;
  1987. Randomize    macro
  1988.         ifndef    sl_randomize
  1989. stdlib        segment    para public 'slcode'
  1990.         extrn    sl_randomize:far
  1991. stdlib        ends
  1992.         endif
  1993.         call    sl_randomize
  1994.         endm
  1995. ;
  1996. ;
  1997. ; Random-    Generates a random number and returns this number in AX
  1998. ;
  1999. Random        macro
  2000.         ifndef    sl_random
  2001. stdlib        segment    para public 'slcode'
  2002.         extrn    sl_random:far
  2003. stdlib        ends
  2004.         endif
  2005.         call    sl_random
  2006.         endm
  2007. ;
  2008. ;
  2009. ; CPUID-    Returns CPU id in AX & BX
  2010. ;
  2011. CPUID        macro
  2012.         ifndef    sl_cpuid
  2013. stdlib        segment    para public 'slcode'
  2014.         extrn    sl_cpuid:far
  2015. stdlib        ends
  2016.         endif
  2017.         call    sl_cpuid
  2018.         endm
  2019. ;
  2020.